home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 08 (1983-04)(Softdisk)(Disk 2 of 2 Side A).zip / Softdisk Magazette Volume 2, No. 08 (1983-04)(Softdisk)(Disk 2 of 2 Side A).do / RECIPE FILE 1.3.bas < prev    next >
BASIC Source File  |  1996-12-24  |  26KB  |  484 lines

  1. 0  TEXT : HOME : INVERSE : LIST 61001 -: NORMAL : VTAB 1: HTAB 5
  2. 1  PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%": FOR X = 2 TO 23: PRINT "    %%%%%%%";: HTAB 33: PRINT "%%%%%%%": NEXT : HTAB 5: PRINT "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";
  3. 10  VTAB 1: PRINT  CHR$(13) CHR$(4)"NOMONCIO"
  4. 20  REM SUB-STRING SEARCH FNCTN
  5. 30  REM BY LEE REYNOLDS,
  6. 40  REM 1/81 ISSUE OF CALL -APPLE
  7. 50  REM ***********************
  8. 60  REM **                   **
  9. 70  REM **  RECIPE FILE 1.3  **
  10. 80  REM **                   **
  11. 90  REM ***********************
  12. 100  REM   
  13. 110  GOTO 1600: REM INIT & MENU
  14. 120  REM CENTER A$ SUBROUTINE
  15. 130  HTAB 20 - LEN(A$)/2 +  NOT INPT: PRINT A$: RETURN 
  16. 140  REM  INPUT C/R TO CONTINUE
  17. 150  POKE CB,0: REM CLR KEYBOARD
  18. 160  NORMAL : VTAB 23: HTAB 1: PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO CONTINUE ";: FLASH : PRINT U$;: NORMAL 
  19. 170  WAIT KB,128: IF  PEEK(KB) < >141  THEN 170
  20. 180  POKE CB,0: VTAB  PEEK(VC) +1: HTAB 1: PRINT  SPC( 40): RETURN 
  21. 190  REM PRINT "READING" MESSAGE
  22. 200  VTAB 12: HTAB 16: PRINT "[READING]"
  23. 210  RETURN 
  24. 220  REM <CTRL-J><CTRL-J>::: INPUT ROUTINE :::<CTRL-J><CTRL-J>
  25. 230  REM MARGINS:A=LEFT,B=RIGHT,C=TOP,D=BOTTOM
  26. 240  INVERSE : FOR X = C TO D: VTAB X: HTAB A: PRINT  SPC( B -1): PRINT : NEXT : REM DRAW  "RECIPE CARD" 
  27. 250  POKE LFT,A -1: POKE TP,C -1: POKE BM,D: POKE WTH,B: REM SET WINDOW
  28. 260 A$(0) = "": REM CLEAR FIRST STRING
  29. 270  VTAB C: PRINT : VTAB C: HTAB 1: REM POSITION CURSOR
  30. 280 STRING = 0: POKE CB,STRING
  31. 290  IF  POS(X) < >B -1  THEN 320
  32. 300  IF  PEEK(VC) = D -1  THEN  CALL UP: VTAB  PEEK(VC): NORMAL : PRINT S$;: INVERSE : PRINT  SPC( B -1);: HTAB 1: GOTO 320
  33. 310  VTAB  PEEK(VC) +2: HTAB 1
  34. 320  FLASH : PRINT U$;: INVERSE : WAIT KB,128:A$ =  CHR$( PEEK(KB)): IF  ASC(A$) <160  OR  ASC(A$) >222  OR  ASC(A$) = 162  THEN 370
  35. 330 A$(STRING) = A$(STRING) +A$
  36. 340  IF STRING >57  THEN STRING = 57:A$(58) = "": CALL BP: CALL BP: CALL BP: CALL BP: FLASH : PRINT " THIS FILE IS FULL ! ! ! ": FOR ZZ = 1 TO 1000: NEXT ZZ: GOTO 480
  37. 350  HTAB  POS(X): PRINT A$;
  38. 355  IF  LEN(A$(STRING)) = 31  THEN A$ =  CHR$(141): GOTO 375
  39. 360  POKE CB,0: GOTO 290
  40. 370  REM SPECIAL CHARACTER
  41. 375  IF A$ =  CHR$(141)  THEN STRING = STRING +1:A$(STRING) = "": POKE CB,0
  42. 377  IF A$ =  CHR$(141)  AND  LEN(A$(STRING -(STRING >0))) <31  THEN  PRINT  CHR$(8)" ": VTAB  PEEK(VC) +1: HTAB 1: INVERSE : PRINT  SPC( B -1);: VTAB  PEEK(VC) +1: HTAB 1: NORMAL : GOTO 320
  43. 378  IF A$ =  CHR$(141)  THEN 300
  44. 380  IF A$ =  CHR$(134)  THEN 480
  45. 390  IF A$ =  CHR$(155)  THEN  NORMAL : POKE CB,0: POP : TEXT : HOME : GOTO 1840
  46. 400  IF A$ =  CHR$(136)  THEN 420
  47. 410  PRINT H$;: CALL BP: GOTO 360
  48. 420  IF  LEN(A$(STRING)) >1  THEN A$(STRING) =  LEFT$(A$(STRING), LEN(A$(STRING)) -1): GOTO 450
  49. 430  IF   NOT  LEN(A$(STRING))  THEN 410
  50. 440 A$(STRING) = ""
  51. 450  PRINT A$S$;
  52. 460  IF  POS(X) = 1  AND  PEEK(VC) >C -1  THEN  VTAB  PEEK(VC): HTAB B +1
  53. 470  GOTO 350
  54. 480  POKE CB,0: CALL BP: TEXT : HOME : NORMAL : RETURN 
  55. 490  REM <CTRL-J><CTRL-J><CTRL-J>::: ENTER RECIPES :::<CTRL-J><CTRL-J>
  56. 500  HOME : INVERSE : VTAB 3:A$ = ": FILE NEW RECIPES :": GOSUB 120: NORMAL 
  57. 510  VTAB 6: FOR X = 0 TO 4: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT : VTAB 6: FOR X = 5 TO 9: HTAB 23: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT 
  58. 520  FOR X = 5 TO 11  STEP 6: VTAB X: PRINT DASH$: NEXT 
  59. 530  PRINT 
  60. 540  PRINT "ENTER THE LETTER OF THE": PRINT "APPROPRIATE CATEGORY <A-J>:"U$;: HTAB 28: GET CG$: PRINT CG$: IF CG$ = ""  THEN  HOME : GOTO 1840
  61. 550 CG =  ASC(CG$) -65: IF CG <0  OR CG >9  THEN  HOME : GOTO 1840
  62. 560  PRINT : PRINT "NAME OF RECIPE ";: FOR X = 1 TO 20: PRINT U$;: NEXT : HTAB 15: INPUT ":";NM$
  63. 570  IF  LEN(NM$) >20  THEN NM$ =  LEFT$(NM$,20)
  64. 580  IF   NOT  LEN(NM$)  THEN  CALL BP: GOTO 500
  65. 590  VTAB 19: PRINT "NAME:";: FLASH : PRINT NM$: NORMAL : PRINT : PRINT "CATEGORY:";: FLASH : PRINT CT$(CG): NORMAL 
  66. 600  PRINT : PRINT "IS THE ABOVE INFO CORRECT <Y/N>?"U$;: HTAB 33: GET YN$: PRINT YN$: IF YN$ < >"N"  THEN 620
  67. 610  VTAB 14: CALL CT: GOTO 540
  68. 620  REM INPUT THE RECIPE
  69. 630 INPT = 1: REM FLAG FOR        CENTERING SUBR
  70. 640  HOME :A$ = NM$ +" (" +CT$(CG) +")": GOSUB 120
  71. 650  PRINT :A$ = ".....TYPE THE RECIPE BELOW.....": GOSUB 120
  72. 660 INPT = 0
  73. 670  VTAB 5: HTAB 4: PRINT  LEFT$(DASH$,31): VTAB 22: HTAB 4: PRINT  LEFT$(DASH$,31)
  74. 680  VTAB 24: HTAB 2: PRINT "<HIT ";: INVERSE : PRINT "CTRL-F";: NORMAL : PRINT " WHEN DONE, ";: INVERSE : PRINT "ESC";: NORMAL : PRINT " TO EXIT>";
  75. 690 A = 4:B = 32:C = 6:D = 21: GOSUB 220: REM SET WINDOW MARGIN  PARAMETERS;GO TO "INPUT"   SUBROUTINE
  76. 700 LNGTH = STRING: REM NUMBER OF"CHUNKS" OF TEXT (EACH CHUNK=217 CHARS,7 LINES OF 31)
  77. 710  VTAB 9
  78. 720  PRINT "INSERT DISK CONTAINING": PRINT "RECIPE FILES...": PRINT : GOSUB 140
  79. 730  PRINT 
  80. 740  PRINT D$"OPENRF."CT$(CG)",L2000"
  81. 750  PRINT D$"READRF."CT$(CG)",R0"
  82. 760  INPUT REC
  83. 770  PRINT D$"WRITERF."CT$(CG)",R"REC +1
  84. 780  PRINT NM$: PRINT LNGTH
  85. 790  FOR X = 0 TO LNGTH
  86. 800  PRINT Q$A$(X)Q$
  87. 810  NEXT X
  88. 820  PRINT D$"WRITERF."CT$(CG)",R0"
  89. 830  PRINT REC +1
  90. 840  PRINT D$"CLOSE"
  91. 850 CT(CG) = CT(CG) +1:TTL = TTL +1
  92. 855  IF ED = 1  THEN  RETURN 
  93. 860  REM PREVIOUS LINES OPEN THE FILE, ADD THE NEW DATA, REC 0 CONTAINS NUMBER OF RECIPESIN THIS FILE
  94. 870  PRINT : PRINT "THE RECIPE FOR "NM$" HAS": PRINT "BEEN ADDED TO THE "Q$CT$(CG)Q$" FILE.": PRINT : GOSUB 140: PRINT : HOME 
  95. 880  GOTO 1840
  96. 890  REM  <CTRL-M><CTRL-M><CTRL-M>:: READ RECIPES :::<CTRL-M><CTRL-M>
  97. 900  HOME : INVERSE : VTAB 3:A$ = ": READ RECIPES :": GOSUB 120: NORMAL :X1 = 0
  98. 910  PRINT : PRINT "LTR";: HTAB 5: PRINT "CATEGORY";: HTAB 36: PRINT "RECS": HTAB 5: PRINT  LEFT$(DASH$,35)
  99. 920  FOR X = 0 TO 9:CG$ = CT$(X):REC = CT(X)
  100. 930  PRINT "< > . . . . . . . . . . . . . . . . . .";: HTAB 2: PRINT  CHR$(X +65);: HTAB 5: PRINT CG$;: HTAB 39 -(REC >9): PRINT REC
  101. 940  NEXT 
  102. 950  HTAB 5: PRINT  LEFT$(DASH$,35)
  103. 960  HTAB 31: PRINT "TOTAL:";: HTAB 39 -(TTL >9) -(TTL >99): PRINT TTL: PRINT 
  104. 970  HTAB 3: PRINT "PRESS THE LETTER OF": HTAB 3: PRINT "YOUR CHOICE <A-J>:"U$;: HTAB 21: GET CG$: HOME : IF CG$ = ""  THEN 1840
  105. 980 CG =  ASC(CG$) -65: IF CG <0  OR CG >9  THEN 1840
  106. 990  PRINT : GOSUB 190
  107. 1000  PRINT D$"OPENRF."CT$(CG)",L2000"
  108. 1010  PRINT D$"READRF."CT$(CG)",R0"
  109. 1020  INPUT REC
  110. 1030  IF   NOT REC  THEN  PRINT D$"CLOSE": GOTO 1430
  111. 1040  FOR X = 1 TO REC
  112. 1050  PRINT D$"READRF."CT$(CG)",R"X
  113. 1060  INPUT NM$(X)
  114. 1070  NEXT 
  115. 1080  PRINT D$"CLOSE"
  116. 1090  HOME : INVERSE :A$ = ":" +S$ +Q$ +CT$(CG) +Q$ +S$ +"FILE :": GOSUB 120
  117. 1100  NORMAL : PRINT "NMBR";: HTAB 34: PRINT "RECIPE": PRINT  LEFT$(DASH$,39)
  118. 1110  FOR X = 1 TO REC: PRINT ". . . . . . . . . . . . . . . . . . .";: HTAB 1: PRINT "<"X">";: HTAB 40 - LEN(NM$(X)): PRINT NM$(X)
  119. 1120  IF  PEEK(37) = 21  AND X < >REC  THEN 1140: REM CHECK FOR FULL PAGE OF TEXT
  120. 1130  NEXT : GOTO 1170
  121. 1140  PRINT  LEFT$(DASH$,39): PRINT "ENTER # OR ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " FOR MORE: ";A$:N =  VAL(A$)
  122. 1150  IF A$ = ""  THEN  VTAB 3: PRINT : GOTO 1130: REM RETURN FOR MORE
  123. 1160  GOTO 1190
  124. 1170  CALL CT: PRINT  LEFT$(DASH$,39): PRINT "ENTER # OR ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " FOR MENU: ";A$:N =  VAL(A$)
  125. 1180  IF A$ = ""  THEN  HOME : GOTO 1840: REM "RTN" SO BACK TO  MENU
  126. 1190  IF N >REC  THEN 1170
  127. 1200  HOME : GOSUB 190
  128. 1210  PRINT D$"OPENRF."CT$(CG)",L2000"
  129. 1220  PRINT D$"READRF."CT$(CG)",R"N
  130. 1230  INPUT NM$,LNGTH
  131. 1240  IF DL  THEN  PRINT D$"CLOSE": RETURN 
  132. 1245  IF LNGTH >57  THEN LNGTH = 57
  133. 1250  FOR X = 0 TO LNGTH
  134. 1260  INPUT A$(X)
  135. 1270  NEXT 
  136. 1280  PRINT D$"CLOSE"
  137. 1282  IF  LEN(A$(0)) >36  THEN  GOSUB 10000
  138. 1285  IF ED = 1  THEN  RETURN 
  139. 1290  HOME : VTAB 10: PRINT "OUTPUT TO <S>CREEN OR <P>RINTER? "U$;: HTAB 34: GET A$: PRINT A$: IF A$ < >"S"  AND A$ < >"P"  THEN 1290
  140. 1300  IF A$ = "S"  THEN 1460
  141. 1310  VTAB 13: PRINT "ENTER PRINTER'S SLOT # (DEFAULT=1) ": PRINT : INPUT "OR BINARY DRIVER CALL:  ";A$:PR =  VAL(A$)
  142. 1320  IF A$ = ""  THEN PR = 1: REM  DEFAULT TO SLOT 1
  143. 1330  IF PR <1  OR PR >7  THEN  CALL PR: GOTO 1350
  144. 1340  PRINT D$"PR#"PR: REM  ACTIVATE PRINTER
  145. 1350  PRINT 
  146. 1360  PRINT  CHR$(9)"80N": PRINT "RECIPE FOR "NM$
  147. 1370  PRINT DASH$
  148. 1380  FOR X = 0 TO LNGTH: PRINT A$(X): NEXT 
  149. 1390  PRINT DASH$
  150. 1400  PRINT : PRINT 
  151. 1410  PRINT D$"PR#0": REM RETURN TO SCREEN
  152. 1420  GOSUB 140: PRINT : HOME : GOTO 1840
  153. 1430  REM NO RECIPES IN CATEGORY
  154. 1440  FOR X = 1 TO 3: CALL BP: NEXT : HOME 
  155. 1450  VTAB 11: PRINT "THERE ARE NO RECIPES CURRENTLY IN THE": PRINT Q$CT$(CG)Q$" FILE.": PRINT : GOSUB 140: HOME : GOTO 1840
  156. 1460  REM <CTRL-J><CTRL-J><CTRL-J>::: SCREEN OUTPUT :::<CTRL-J><CTRL-J>
  157. 1470  HOME : PRINT "RECIPE FOR ";: INVERSE : PRINT NM$: NORMAL : POKE TP,2: PRINT 
  158. 1480  FOR X = 0 TO LNGTH:A$ = A$(X)
  159. 1482  HTAB 4: PRINT A$
  160. 1490  IF  PEEK(37) = 22  THEN  PRINT : GOSUB 140: HOME 
  161. 1500  NEXT : IF  LEN(A$) >31  THEN  NEXT 
  162. 1510  GOSUB 140: HOME : VTAB 11
  163. 1520  PRINT "WOULD YOU NOW LIKE TO PRINT OUT THIS    RECIPE <Y/N>? "U$;: HTAB 15: GET A$: PRINT A$: IF A$ < >"Y"  AND A$ < >"N"  THEN  VTAB 11: GOTO 1520
  164. 1530  TEXT : HOME : IF A$ = "Y"  THEN 1310
  165. 1540  GOTO 1840
  166. 1550  REM <CTRL-J><CTRL-J><CTRL-J>::: ERROR TRAP :::<CTRL-J><CTRL-J>
  167. 1560  TEXT : HOME : NORMAL : PRINT  CHR$(13)D$"CLOSE": PRINT D$"PR#0"
  168. 1570 ER =  PEEK(222): IF ER = 255  THEN 2710
  169. 1580  PRINT "ERROR #"ER" HAS OCCURRED IN LINE #" PEEK(218) + PEEK(219) *256
  170. 1590  FOR X = 1 TO 5: CALL BP: NEXT : PRINT : END 
  171. 1600  REM <CTRL-J><CTRL-J><CTRL-J>::: INITIALIZATION :::<CTRL-J><CTRL-J>
  172. 1610  SPEED= 255
  173. 1620 D$ =  CHR$(4): REM CTRL-D
  174. 1630 Q$ =  CHR$(34): REM QUOTE
  175. 1640 S$ =  CHR$(32): REM SPACE
  176. 1650 U$ =  CHR$(95): REM SCORE
  177. 1660 H$ =  CHR$(8): REM BCKSPC
  178. 1670 LFT = 32: REM LEFT MARGIN
  179. 1680 WTH = 33: REM SCREEN WIDTH
  180. 1690 TP = 34: REM TOP MARGIN
  181. 1700 BM = 35: REM BOTTOM MARGIN
  182. 1710 CT =  -958: REM CLR WNDW
  183. 1720 UP =  -912: REM SCROLL UP
  184. 1730 KB =  -16384: REM KYBOARD
  185. 1740 CB =  -16368: REM CLR KBD
  186. 1750 BP =  -198: REM CALL BEEP
  187. 1760 VC = 37: REM  VERT.CURSOR
  188. 1770  DIM NM$(150),A$(64),TXT$(64)
  189. 1780 DASH$ = "----------------------------------------"
  190. 1790  NOTRACE 
  191. 1800  FOR X = 0 TO 9: READ CT$(X): NEXT : REM GET CATEGORY NAMES
  192. 1810  IF  PEEK(768) < >32  OR  PEEK(769) < >227  THEN  GOSUB 3330
  193. 1820  GOSUB 2010
  194. 1830  REM <CTRL-J><CTRL-J><CTRL-J>  ::: MENU :::<CTRL-J><CTRL-J>
  195. 1840  INVERSE : VTAB 3: HTAB 3: PRINT  SPC( 36): FOR X = 4 TO 21: VTAB X: HTAB 2: PRINT  SPC( 38): NEXT : VTAB 22: HTAB 3: PRINT  SPC( 36)
  196. 1850 DL = 0: VTAB 3: PRINT 
  197. 1860 A$ = "*** RECIPE FILE 1.3 ***": GOSUB 120
  198. 1870  PRINT :A$ = ".........BY JIM GANZ.........": GOSUB 120
  199. 1875 A$ = "EDITING AND INPUT ROUTINES BY": GOSUB 120
  200. 1877 A$ = "...GENE FINNELL - NOV 1982...": GOSUB 120
  201. 1880  PRINT :A$ = "A PROGRAM WHICH ALLOWS YOU TO": GOSUB 120
  202. 1890 A$ = "ORGANIZE YOUR RECIPES ON DISK": GOSUB 120
  203. 1900 A$ = "-----------------------------": GOSUB 120
  204. 1910  HTAB 6: PRINT "<I>NSERT A RECIPE": HTAB 6: PRINT "<R>EAD RECIPES  ("TTL" ON FILE)": HTAB 6: PRINT "<S>EARCH FOR RECIPES": HTAB 6: PRINT "<D>ELETE RECIPES"
  205. 1915  HTAB 6: PRINT "<E>DIT FILE"
  206. 1920  HTAB 6: PRINT "<H>OW TO USE RF 1.3": HTAB 6: PRINT "<Q>UIT": PRINT 
  207. 1930  HTAB 6: PRINT "SELECT:"U$;: HTAB 13: GET A$: IF   NOT TTL  AND (A$ = "R"  OR A$ = "S"  OR A$ = "D")  THEN A$ = "X"
  208. 1940  IF A$ < >"I"  AND A$ < >"R"  AND A$ < >"S"  AND A$ < >"D"  AND A$ < >"E"  AND A$ < >"H"  AND A$ < >"Q"  THEN  CALL BP: GOTO 1930
  209. 1950  PRINT A$;: NORMAL : PRINT 
  210. 1960  ON A$ = "I" GOTO 490: ON A$ = "R" GOTO 890: ON A$ = "S" GOTO 2740: ON A$ = "D" GOTO 3040: ON A$ = "E" GOTO 4000: ON A$ = "H" GOTO 2160: GOTO 2710
  211. 1970  REM CATEGORY NAME DATA
  212. 1980  DATA BEVERAGES,BREADS,DESSERTS,FISH,HORS D'OEUVRES,MEAT,POULTRY,SOUPS,VEGETABLES,OTHER
  213. 1990  REM CHANGE CATEGORY NAMES  AS NEEDED
  214. 2000  REM CATEGORY NAMES MAY NOT EXCEED 16 CHARS.
  215. 2010  REM <CTRL-J><CTRL-J><CTRL-J>::: INIT FILES :::<CTRL-J><CTRL-J>
  216. 2020  POKE 33,3: ONERR  GOTO 2040
  217. 2030  PRINT D$"VERIFYRF."CT$(0): POKE 216,0: GOTO 2120
  218. 2040  IF  PEEK(222) < >6  THEN  TEXT : HOME : STOP : REM AN ERROR DID OCCUR, BUT IT WASN'T A "FILE NOT FOUND" ERROR SO STOP
  219. 2050  FOR X = 0 TO 9:CT$ = CT$(X)
  220. 2060  PRINT D$"OPENRF."CT$",L2000"
  221. 2070  PRINT D$"WRITERF."CT$",R0"
  222. 2080  PRINT 0:CT(X) = 0
  223. 2090  PRINT D$"CLOSE"
  224. 2100  NEXT : POKE 216,0: RUN 1600
  225. 2110  REM THE PREVIOUS ROUTINE   CREATES ALL 10 RECIPE FILES AND SPECIFIES IN EACH ONE   THAT THERE ARE 0 RECORDS
  226. 2120  FOR X = 0 TO 9:CG$ = CT$(X): PRINT D$"OPENRF."CG$",L2000": PRINT D$"READRF."CG$",R0": INPUT CT(X): PRINT D$"CLOSE":TTL = TTL +CT(X): NEXT 
  227. 2130  TEXT : HOME : ONERR  GOTO 1550
  228. 2140  RETURN 
  229. 2150  REM <CTRL-J><CTRL-J><CTRL-J>::: INSTRUCTIONS :::<CTRL-J><CTRL-J>
  230. 2160  TEXT : HOME : PRINT "::::::::";: INVERSE : PRINT "RECIPE FILE INSTRUCTIONS";: NORMAL : PRINT "::::::::"
  231. 2170  PRINT : POKE TP,3
  232. 2180  PRINT "    THIS PROGRAM WILL STORE YOUR MOST": PRINT 
  233. 2190  PRINT "OFTEN USED RECIPES ON DISK AND ALLOW YOU"
  234. 2200  PRINT "TO OBTAIN A PRINT-OUT OF THEM ON YOUR": PRINT 
  235. 2210  PRINT "PRINTER.  WHEN YOU WANT A PARTICULAR": PRINT 
  236. 2220  PRINT "RECIPE, OR WHEN A FRIEND WANTS A COPY OF"
  237. 2230  PRINT "ONE OF YOUR RECIPES, SIMPLY SELECT THAT": PRINT 
  238. 2240  PRINT "RECIPE FROM THE PROGRAM'S 'MENU' AND IT": PRINT 
  239. 2250  PRINT "WILL BE PRINTED OUT FOR YOU. FOR THOSE  ": PRINT "WITHOUT A PRINTER THERE IS A SCREEN-ONLY": PRINT "OPTION.": PRINT 
  240. 2260  PRINT ":::::::";: GOSUB 140
  241. 2270  PRINT "    BEFORE YOU ACTUALLY BEGIN ENTERING": PRINT 
  242. 2280  PRINT "YOUR RECIPES INTO THIS PROGRAM, IT IS": PRINT 
  243. 2290  PRINT "SUGGESTED THAT YOU SAVE THIS PROGRAM,": PRINT 
  244. 2300  PRINT "CALLED 'RECIPE FILE 1.3,' ON A SEPARATE": PRINT 
  245. 2310  PRINT "DISK.  THE 10 TEXT FILES WHICH ACCOMPANY"
  246. 2320  PRINT "'RECIPE FILE,' WHICH ARE IDENTIFIED BY": PRINT 
  247. 2330  PRINT "THEIR PREFIX 'RF.', SHOULD BE THE ONLY": PRINT 
  248. 2340  PRINT "OTHER FILES ON THE SAME DISK AS THIS": PRINT 
  249. 2350  PRINT "PROGRAM.": PRINT 
  250. 2360  PRINT "    EACH RECIPE IS ENTERED ON A KIND OF": PRINT 
  251. 2370  PRINT ":::::::::";: GOSUB 140
  252. 2380  PRINT "VIDEO RECIPE CARD. PRETEND THAT YOU ARE": PRINT 
  253. 2390  PRINT "TYPING ON A REAL RECIPE CARD AND ENTER": PRINT 
  254. 2400  PRINT "ALL NECESSARY INFORMATION. YOU MAY": PRINT 
  255. 2410  PRINT "JUSTIFY THE TEXT AS YOU WISH, AND WHEN": PRINT 
  256. 2420  PRINT "YOU REACH THE BOTTOM OF THE CARD, IT": PRINT 
  257. 2430  PRINT "WILL SCROLL UPWARD SO YOU CAN CONTINUE.": PRINT 
  258. 2440  PRINT "IT IS NOT NECESSARY TO TYPE THE TITLE OF"
  259. 2450  PRINT "THE RECIPE ON THE CARD, AND YOU SHOULD": PRINT 
  260. 2460  PRINT "KNOW THAT BOTH THE QUOTATION MARK AND": PRINT 
  261. 2470  PRINT "THE FORWARD ARROW (->) ARE INOPERATIVE.": PRINT 
  262. 2480  PRINT "::::::::";: GOSUB 140
  263. 2490  PRINT "PRESS CTRL-F WHEN YOU ARE COMPLETELY": PRINT 
  264. 2500  PRINT "FINISHED TYPING IN THE RECIPE. TO RETURN"
  265. 2510  PRINT "TO THE MAIN MENU WITHOUT SAVING THE": PRINT 
  266. 2520  PRINT "RECIPE, PRESS THE ESCAPE KEY.": PRINT 
  267. 2530  PRINT "    THE DELETE OPTION FROM THE MAIN MENU"
  268. 2540  PRINT "ALLOWS YOU TO DELETE A RECIPE FROM THE": PRINT 
  269. 2550  PRINT "FILE. NOTE THAT ONCE A RECIPE HAS BEEN": PRINT 
  270. 2560  PRINT "DELETED, IT CANNOT BE RESTORED.": PRINT 
  271. 2570  PRINT "    WITH THE SEARCH OPTION YOU CAN ENTER"
  272. 2580  PRINT "AN INGREDIENT (OR OTHER KEYWORD) AND": PRINT 
  273. 2590  PRINT "::::::::";: GOSUB 140: VTAB 23
  274. 2600  PRINT "OBTAIN A LIST OF ALL RECIPES CONTAINING": PRINT 
  275. 2610  PRINT "THAT INGREDIENT IN A GIVEN CATEGORY. FOR"
  276. 2620  PRINT "INSTANCE, YOU CAN FIND OUT HOW MANY OF": PRINT 
  277. 2630  PRINT "YOUR DESSERT RECIPES USE PEANUT BUTTER.": PRINT 
  278. 2640  PRINT "    THAT'S ABOUT IT... THANK YOU ALL FOR"
  279. 2650  PRINT "MAKING THE APPLE COOKBOOK A SUCCESS, AND"
  280. 2660  PRINT "GOOD LUCK WITH RECIPE FILE 1.3.  JG": PRINT 
  281. 2670  GOSUB 140
  282. 2680  TEXT : HOME 
  283. 2690  GOTO 1840: REM RETURN TO   MENU 
  284. 2700  REM END PROGRAM
  285. 2710  TEXT : HOME : TEXT 
  286. 2720  PRINT "THANK YOU FOR USING "Q$"RECIPE FILE 1.3"Q$: PRINT "TODAY - AND ";: FLASH : PRINT "ENJOY";: NORMAL : PRINT "!"
  287. 2730  FOR I = 1 TO 2000: NEXT : PRINT  CHR$(13) CHR$(4)"RUN KICK.IT.OFF"
  288. 2740  REM <CTRL-J><CTRL-J>  ::::: SEARCH :::::<CTRL-J><CTRL-J>
  289. 2750  HOME : PRINT DASH$;: INVERSE : PRINT  SPC( 40): VTAB 2:A$ = "*** RECIPE FILE SEARCH ***": GOSUB 130: NORMAL : PRINT DASH$
  290. 2760  POKE 34,3: PRINT : VTAB 4
  291. 2770  FOR X = 0 TO 4: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT : VTAB 4: FOR X = 5 TO 9: HTAB 23: PRINT "<" CHR$(X +65)">. . "CT$(X): NEXT 
  292. 2780  PRINT DASH$
  293. 2790  PRINT : PRINT "SEARCH CATEGORY <A-J>: "U$;: HTAB 24: GET CT$:CS =  ASC(CT$) -65: IF CS <0  OR CS >9  THEN 3030
  294. 2800  PRINT CT$:CT$ = CT$(CS)
  295. 2810  IF   NOT CT(CS)  THEN  CALL BP: PRINT : PRINT "THERE ARE NO RECIPES CURRENTLY FILED IN THAT CATEGORY... PLEASE TRY AGAIN:": GOTO 2790
  296. 2820  PRINT 
  297. 2830  INPUT "ENTER SEARCH INGREDIENT:";SS$
  298. 2840  IF   NOT  LEN(SS$)  THEN 2820
  299. 2850  POKE 34,2: HOME : PRINT DASH$;: PRINT "CATEGORY:";: INVERSE : PRINT CT$;: NORMAL : HTAB 34 - LEN(SS$): PRINT "INGRED:";: INVERSE : PRINT SS$;: NORMAL 
  300. 2860  PRINT "FOUND IN    OF "CT(CS)" RECIPES CHECKED": PRINT DASH$
  301. 2870  POKE 34,6:SF = 0
  302. 2880  PRINT D$"OPENRF."CT$",L2000"
  303. 2890  FOR X = 1 TO CT(CS)
  304. 2900  PRINT D$"READRF."CT$",R"X
  305. 2910  INPUT NM$,LNGTH
  306. 2920  FOR XX = 0 TO LNGTH
  307. 2930  INPUT TXT$(XX)
  308. 2960  & TXT$(XX),SS$
  309. 2970  IF   NOT  PEEK(26)  THEN 3010
  310. 2980  REM STRING FOUND
  311. 2990 SF = SF +1: PRINT SF".";: HTAB 5: PRINT NM$:XX = LNGTH
  312. 3000  IF  PEEK(37) = 22  AND X < >CT(CS)  THEN  PRINT D$"CLOSE": VTAB 24: GOSUB 150: HOME : PRINT  CHR$(13)D$"OPENRF."CT$",L2000"
  313. 3010  NEXT : NEXT : PRINT D$"CLOSE": VTAB 5: HTAB 10: PRINT SF: VTAB 24
  314. 3020  GOSUB 150
  315. 3030  TEXT : HOME : GOTO 1840
  316. 3040  REM   <CTRL-M><CTRL-M>      ::::: DELETE :::::<CTRL-M><CTRL-M>
  317. 3050 DL = 1: REM FLAG FOR DELETE
  318. 3060  HOME : INVERSE : VTAB 3:A$ = ": DELETE RECIPES :": GOSUB 120: NORMAL :X1 = 0
  319. 3070  GOSUB 910:DL = 0
  320. 3080  HOME : VTAB 9
  321. 3090  PRINT "ARE YOU SURE YOU WANT TO ";: FLASH : PRINT "DELETE";: NORMAL : PRINT " THE": PRINT 
  322. 3100  PRINT "RECIPE FOR ";: INVERSE : PRINT NM$;: NORMAL : PRINT " FROM"
  323. 3110  PRINT : PRINT "THE FILE <Y/N>? "U$;
  324. 3120  HTAB 17: GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 3120
  325. 3130  PRINT A$: IF A$ = "N"  THEN  HOME : GOTO 1840
  326. 3140  PRINT : PRINT "STAND BY -- NOW DELETING"
  327. 3150  REM 
  328. 3160  REM RECIPE TO DELETE: NM$
  329. 3170  REM RECORD NUMBER: N
  330. 3180  REM CATEGORY: CT$(CG)
  331. 3190  REM # RECS IN CAT: CT(CG)
  332. 3200  REM TOTAL # RECS: TTL
  333. 3210  REM 
  334. 3220  PRINT D$"OPENRF."CT$(CG)",L2000": PRINT D$"READRF."CT$(CG)",R"CT(CG)
  335. 3230  INPUT NO$,LNGTH
  336. 3240  FOR X = 0 TO LNGTH: INPUT TXT$(X): NEXT X
  337. 3250  PRINT D$"WRITERF."CT$(CG)",R"N
  338. 3260  PRINT NO$: PRINT LNGTH
  339. 3270  FOR X = 0 TO LNGTH: PRINT Q$TXT$(X)Q$: NEXT 
  340. 3280 CT(CG) = CT(CG) -1:TTL = TTL -1
  341. 3290  PRINT D$"WRITERF."CT$(CG)",R0"
  342. 3300  PRINT CT(CG)
  343. 3310  PRINT D$"CLOSE"
  344. 3315  IF ED = 1  THEN  RETURN 
  345. 3320  HOME : GOTO 1840
  346. 3330  REM  <CTRL-M><CTRL-M>     :::: POKE SEARCH ::::<CTRL-M><CTRL-M>
  347. 3340  POKE 1013,76: POKE 1014,0: POKE 1015,3: REM JMP $300
  348. 3350  FOR X = 768 TO 879: READ Y: POKE X,Y: NEXT : RETURN 
  349. 3360  DATA 32,227,223,133,6,132,7,160,0,132,26,177,6,133,24,200,177,6,72,200,177,6,133,7,104,133,6,32,190,222,32,227,223,133,8,132,9,160,0,177,8,133,25,200,177,8,72,200,177,8,133,9
  350. 3370  DATA 104,133,8,165,24,240,30,197,25,144,26,165,25,240,22,165,24,56,229,25,133,27,160,0,177,6,209,8,208,8,200,196,25,144,245,230,26,96,230,26,165,27,197,26,144,8,230,6,208,2,230,7,208,224,169,0,133,26,240,233
  351. 3999  REM   <CTRL-M><CTRL-M>      :::: EDIT RECIPES ::::<CTRL-M><CTRL-M>
  352. 4000  HOME : INVERSE : VTAB 3:A$ = ": EDIT RECIPES :": GOSUB 120: NORMAL :X1 = 0:LL = 0:Y = 0
  353. 4005 ED = 1: GOSUB 910
  354. 4390  TEXT : HOME : PRINT "RECIPE FOR ";: INVERSE : PRINT NM$: NORMAL : POKE TP,2: PRINT 
  355. 4400  FOR X = Y TO LNGTH:A$ = A$(X)
  356. 4410  PRINT  SPC( 1 *(X <10))X".."A$
  357. 4425  IF  PEEK(37) = 22  AND ADD = 1  THEN  POP :ADD = 0: GOTO 6000
  358. 4430  IF  PEEK(37) = 22  THEN  GOSUB 4800: HOME 
  359. 4440  NEXT : IF  LEN(A$) >31  THEN  NEXT 
  360. 4450  IF X >LNGTH  AND ADD = 1  THEN ADD = 0: GOTO 6000
  361. 4800  VTAB 23: HTAB 1: CALL  -958: INVERSE : PRINT "DO YOU WISH TO EDIT THIS PAGE? (Y/N)  ";: NORMAL : GET AA$
  362. 4805  IF AA$ =  CHR$(27)  THEN  TEXT : HOME : GOTO 1840: REM   <ESC> TO MENU
  363. 4810  IF AA$ < >"Y"  AND AA$ < >"N"  THEN  PRINT "<CTRL-G><CTRL-G><CTRL-G>";: GOTO 4800
  364. 4815  PRINT ""
  365. 4818  IF AA$ = "N"  AND X >LNGTH  THEN 4900
  366. 4820  IF AA$ = "N"  THEN  VTAB  PEEK(VC) +1: HTAB 1: PRINT  SPC( 40): RETURN 
  367. 4830  VTAB 23: CALL  -958: INVERSE : PRINT "  (E)DIT  (A)DD  (D)ELETE A LINE...";: NORMAL : GET AA$
  368. 4831  IF AA$ =  CHR$(27)  THEN  TEXT : HOME : GOTO 1840
  369. 4832  IF AA$ = "A"  THEN  GOTO 5000
  370. 4834  IF AA$ = "D"  THEN  GOTO 5050
  371. 4835  IF AA$ < >"E"  THEN  PRINT "<CTRL-G><CTRL-G><CTRL-G>": GOTO 4830
  372. 4836  VTAB 24: HTAB 1: CALL  -868: INVERSE : PRINT "DURING EDITING, ^ = CTRL : ^D = CTRL-D ";: NORMAL 
  373. 4837  VTAB 23: HTAB 1: CALL  -868: INVERSE : INPUT " EDIT WHICH LINE?...";LL
  374. 4838  IF X >19  AND LL <20  THEN  VTAB 23: CALL  -868: INVERSE : PRINT "LINE NUMBER TOO SMALL!<CTRL-G><CTRL-G><CTRL-G>";: FOR ZZ = 1 TO 1000: NEXT ZZ: GOTO 4837
  375. 4839  IF LL >X  THEN  VTAB 23: CALL  -868: INVERSE : PRINT "LINE NUMBER TOO LARGE!<CTRL-G><CTRL-G><CTRL-G>";: FOR ZZ = 1 TO 1000: NEXT ZZ: GOTO 4837
  376. 4840  VTAB 23: HTAB 1: CALL  -958: PRINT "^B-BEGIN  ^D-DELETE  ^I-INSERT  ^F-FIND": PRINT "<- MOVE CURSOR -> [RETURN]-ENDS EDITING";: NORMAL 
  377. 4844 C = 5:A$ = A$(LL)
  378. 4845 IN = 0:FI = 0:F$ = ""
  379. 4846  VTAB (LL -20 *(LL >19) -20 *(LL >39) +3): HTAB C
  380. 4847  GET E$
  381. 4848  IF E$ =  CHR$(13)  THEN  GOSUB 4970:IN = 0:A$(LL) = A$: GOTO 4800: REM   <RETURN>...ENDS EDITING OF LINE
  382. 4849  IF E$ =  CHR$(2)  THEN C = 5: GOTO 4845: REM  CTRL-B ... BEGINNING OF LINE
  383. 4850  IF E$ = F$  THEN FI = 1
  384. 4851  IF E$ =  CHR$(27)  THEN  TEXT : HOME : GOTO 1840: REM   ESC ... TO MENU
  385. 4852  IF E$ =  CHR$(8)  THEN C = C -1 +(C <6): GOTO 4845: REM   CTRL-H ... <--
  386. 4854  IF E$ =  CHR$(21)  THEN C = C +1 -(C >( LEN(A$) +3)): GOTO 4845: REM  CTRL-U ... -->
  387. 4856  IF E$ =  CHR$(4)  AND C = 5  THEN A$ =  RIGHT$(A$, LEN(A$) -1): GOSUB 4970: GOTO 4845: REM    CTRL-D ... DELETE CHARACTER ... BEGINNING OF LINE
  388. 4857  IF E$ =  CHR$(4)  AND C >5  AND C <( LEN(A$) +4)  THEN A$ =  LEFT$(A$,C -5) + RIGHT$(A$, LEN(A$) -(C -4)): GOSUB 4970: GOTO 4845: REM   CTRL-4...DELETE CHARACTER MIDDLE OF LINE
  389. 4858  IF E$ =  CHR$(4)  AND C =  LEN(A$) +4  THEN A$ =  LEFT$(A$, LEN(A$) -1):C =  LEN(A$) +5: GOSUB 4970: GOTO 4845: REM     CTRL-D ...DELETE CHARACTER ... END OF LINE
  390. 4859  IF E$ =  CHR$(4)  AND C > LEN(A$) +4  THEN  GOTO 4845: REM  CTRL-D...PAST END OF LINE
  391. 4860  IF E$ =  CHR$(9)  THEN IN = 1: GOTO 4846
  392. 4862  IF IN = 1  AND C = 5  THEN A$ = E$ +A$: GOSUB 4970:C = C +1: GOTO 4846
  393. 4864  IF IN = 1  AND C >5  THEN A$ =  LEFT$(A$,C -5) +E$ + RIGHT$(A$, LEN(A$) -(C -5)): GOSUB 4970:C = C +1: GOTO 4846
  394. 4865  IF E$ =  CHR$(6)  THEN FI = 1: GOTO 4846
  395. 4866  IF FI = 1  THEN  GOTO 4990
  396. 4867  IF  LEN(A$) = 34  THEN  PRINT "<CTRL-G>": GOTO 4845
  397. 4868  IF  LEN(A$) = C -4  THEN A$ =  LEFT$(A$,C -5) +E$:C = C +1 -(C >39): GOSUB 4970: GOTO 4845
  398. 4869  IF  LEN(A$) = C -5  THEN A$ =  LEFT$(A$,C -5) +E$:C = C +1 -(C >39): GOSUB 4970: GOTO 4845
  399. 4870  IF C >5  THEN A$ =  LEFT$(A$,C -5) +E$ + RIGHT$(A$, LEN(A$) -(C -4)):C = C +1: GOSUB 4970: GOTO 4845
  400. 4872  IF C = 5  THEN A$ = E$ + RIGHT$(A$, LEN(A$) -1):C = C +1: GOSUB 4970: GOTO 4845
  401. 4890  GOTO 4846
  402. 4900 ZZ = LNGTH
  403. 4902  PRINT D$"OPENRF."CT$(CG)",L2000": PRINT D$"READRF."CT$(CG)",R"N
  404. 4904  INPUT NO$,LNGTH
  405. 4912  PRINT D$"CLOSE"
  406. 4914 LNGTH = ZZ
  407. 4916  PRINT D$"OPENRF."CT$(CG)",L2000"
  408. 4918  PRINT D$"WRITERF."CT$(CG)",R"N
  409. 4920  PRINT NO$: PRINT LNGTH
  410. 4922  FOR X = 0 TO LNGTH: PRINT Q$A$(X)Q$: NEXT 
  411. 4923  IF LNGTH <57  THEN  PRINT "                               "
  412. 4924  PRINT D$"CLOSE"
  413. 4926 ED = 0
  414. 4928  HOME : VTAB 5: PRINT "THE "NM$" RECIPE HAS BEEN": PRINT "EDITED FOR THE "Q$CT$(CG)Q$" FILE.": PRINT : GOSUB 140: PRINT : TEXT : HOME : GOTO 1840
  415. 4970  VTAB (LL -20 *(LL >19) -20 *(LL >39) +3): HTAB 5: CALL  -868: PRINT A$: VTAB (LL -20 *(LL >19) -20 *(LL >39) +3): HTAB C: RETURN 
  416. 4990  FOR I = C -3 TO  LEN(A$)
  417. 4992  IF  MID$ (A$,I,1) = E$  THEN C = I +4:I =  LEN(A$)
  418. 4994  NEXT I
  419. 4996  GOSUB 4970:F$ = E$: GOTO 4846
  420. 4999  REM <CTRL-M><CTRL-M>     :::: ADD A LINE ::::<CTRL-M><CTRL-M> 
  421. 5000  VTAB 23: HTAB 1: CALL  -868: INVERSE : INPUT " ADD WHICH LINE?...";LL: NORMAL 
  422. 5005  IF LL >X  OR LL <(20 *(X >19) +20 *(X >39))  THEN  VTAB 23: HTAB 1: CALL  -868: INVERSE : PRINT "ILLEGAL LINE NUMBER!<CTRL-G><CTRL-G><CTRL-G>": FOR ZZ = 1 TO 1000: NEXT ZZ: GOTO 5000
  423. 5010 LNGTH = LNGTH +1
  424. 5012  IF LNGTH >54  THEN  VTAB 23: HTAB 1: CALL  -868: INVERSE : PRINT "FILE IS FULL - CANNOT ADD A LINE!<CTRL-G><CTRL-G><CTRL-G>": FOR ZZ = 1 TO 1000: NEXT ZZ: NORMAL :X = 20 *(X >19) +20 *(X >39): GOTO 4390
  425. 5015  FOR I = LNGTH TO LL +1  STEP  -1
  426. 5020 A$(I) = A$(I -1)
  427. 5025  NEXT I
  428. 5030 A$(LL) = "":ADD = 1:Y = 20 *(X >19) +20 *(X >39): GOTO 4390
  429. 5049  REM  <CTRL-M><CTRL-M>      :::: DELETE A LINE ::::<CTRL-M><CTRL-M>
  430. 5050  VTAB 23: HTAB 1: CALL  -868: INVERSE : INPUT " DELETE WHICH LINE?...";LL: NORMAL 
  431. 5055  IF LL >X  OR LL <(20 *(X >19) +20 *(X >39))  THEN  VTAB 23: HTAB 1: CALL  -868: INVERSE : PRINT "ILLEGAL LINE NUMBER!<CTRL-G><CTRL-G><CTRL-G>": FOR ZZ = 1 TO 1000: NEXT ZZ: GOTO 5050
  432. 5057  IF LL = LNGTH  THEN 5075
  433. 5060  FOR I = LL +1 TO LNGTH
  434. 5065 A$(I -1) = A$(I)
  435. 5070  NEXT I
  436. 5075 A$(LNGTH) = "":LNGTH = LNGTH -1
  437. 5080 Y = 20 *(X >19) +20 *(X >39): GOTO 4390
  438. 6000 C = 5: VTAB (LL -20 *(LL >19) +3): HTAB C
  439. 6005  INPUT "";A$(LL)
  440. 6010  GOTO 4800
  441. 9000  REM 
  442. 9010  REM FILES CREATED WITH
  443. 9020  REM   "RECIPE.FILE" &
  444. 9030  REM   "RECIPE FILE 1.2"
  445. 9040  REM ARE COMPATIBLE WITH
  446. 9050  REM   "RECIPE FILE 1.3"
  447. 9060  REM 
  448. 9070  REM PUBLISHED IN
  449. 9080  REM  SOFTDISK MAGAZETTE
  450. 9090  REM   3811 ST. VINCENT
  451. 9100  REM    SHREVEPORT, LA
  452. 9110  REM        71108
  453. 9120  REM 
  454. 9130  REM 1.3 - 8/19/82
  455. 9140  REM 
  456. 10000  FOR X2 = 0 TO LNGTH:B$(X2) = A$(X2):A$(X) = "": NEXT X2
  457. 10010 NN =  -1
  458. 10020  FOR X2 = 0 TO LNGTH: FOR X1 = 0 TO 6
  459. 10030  IF  MID$ (B$(X2),X1 *31 +1,31) < >""  THEN NN = NN +1:A$(NN) =  MID$ (B$(X2),X1 *31 +1,31)
  460. 10040  NEXT X1: NEXT X2
  461. 10050 LNGTH = NN
  462. 10060  RETURN 
  463. 65535  REM *********************
  464. 65535  REM *                   *
  465. 65535  REM *  RECIPE FILE 1.3  *
  466. 65535  REM *                   *
  467. 65535  REM *    BY JIM GANZ    *
  468. 65535  REM *   82 SPRING LANE  *
  469. 65535  REM *  WEST HARTFORD,CT *
  470. 65535  REM *       06107       *
  471. 65535  REM *                   *
  472. 65535  REM *ALL RIGHTS RESERVED*
  473. 65535  REM *                   *
  474. 65535  REM * DEDICATION: TO    *
  475. 65535  REM * SALLY GANZ, STILL *
  476. 65535  REM * THE WORLD'S MOST  *
  477. 65535  REM * DISORGANIZED COOK.*
  478. 65535  REM *                   *
  479. 65535  REM *     REQUIRES:     *
  480. 65535  REM *   48K APPLE ][+   *
  481. 65535  REM * ONE DISK DRIVE  & *
  482. 65535  REM * PRINTER (OPTIONAL)*
  483. 65535  REM *                   *
  484. 65535  REM *********************